/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package conn.dao;

import conn.bean.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author kuma-chin
 */
public class DDistrito extends DBase {

    public BDistrito getDistrito(int id) {
        BDistrito distrito = null;
        DProvincia prov = new DProvincia();


        Statement stmt = null;
        ResultSet res = null;

        this.init_mysql();  // se inicia la conección a la base de datos

        try {

            stmt = conn.createStatement();
            res = stmt.executeQuery(
                    "SELECT idDistrito, descripcion, idProvincia"
                    + " FROM Provincia"
                    + " WHERE idProvincia=" + id
                    + "");
            BProvincia provincia = prov.getProvincia(res.getInt(3));
            distrito = new BDistrito(res.getInt(1), res.getString(2), provincia);

            res.close();
            stmt.close();
            conn.close();

        } catch (SQLException ex) {
            System.out.println("SqlException : " + ex.toString());
        } catch (Exception ex) {
            System.out.println("Exception : " + ex.toString());
        } finally {
            if (res != null) {
                try {
                    res.close();
                } catch (SQLException e) {
                    ;
                }
                res = null;
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    ;
                }
                stmt = null;
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    ;
                }
                conn = null;
            }
        }


        return distrito;
    }


    public List getmoddistrito() {
        List Lista = new ArrayList();
        Statement stmt = null;
        ResultSet res = null;
        BDistrito bdistrito = null;
        BProvincia bprovincia = null;
        BDepartamento bdepartamento= null;

        this.init_mysql();  // se inicia la conección a la base de datos

        try {
            stmt = conn.createStatement();
            res = stmt.executeQuery(
                    "select p.idProvincia, p.descripcion, d.idDepartamento, d.descripcion, " +
                    "dis.idDistrito, dis.descripcion " +
                    "from departamento d, provincia p, distrito dis " +
                    "where p.idDepartamento = d.idDepartamento " +
                    "and dis.idProvincia = p.idProvincia");

            while (res.next()) {

                bdepartamento = new BDepartamento(res.getInt(3), res.getString(4));
                bprovincia = new BProvincia(res.getInt(1),res.getString(2),bdepartamento);
                bdistrito = new BDistrito(res.getInt(5), res.getString(6), bprovincia);

                Lista.add(bdistrito);
            }
            res.close();
            stmt.close();
            conn.close();
        } catch (SQLException ex) {
            System.out.println("SqlException : " + ex.toString());
        } catch (Exception ex) {
            System.out.println("Exception : " + ex.toString());
        } finally {
            if (res != null) {
                try {
                    res.close();
                } catch (SQLException e) {
                    ;
                }
                res = null;
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    ;
                }
                stmt = null;
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    ;
                }
                conn = null;
            }
        }
        return Lista;
    }


    public List refreshmoddistrito(String id) {
        List Lista = new ArrayList();
        Statement stmt = null;
        ResultSet res = null;
        BDistrito bdistrito = null;
        BProvincia bprovincia = null;
        BDepartamento bdepartamento= null;

        this.init_mysql();  // se inicia la conección a la base de datos

        try {
            stmt = conn.createStatement();

            String query1 = "select idDistrito, descripcion, idProvincia from distrito where idProvincia = ' ';";
            String query2 = "select idDistrito, descripcion, idProvincia from distrito where idProvincia = '" + id + "';";
            String query = null;

            if (id == null) {query = query1;}
            else {query = query2;}

            res = stmt.executeQuery(query);

            while (res.next()) {

                bprovincia = new BProvincia(res.getInt(3), null, null);
                bdistrito = new BDistrito(res.getInt(1), res.getString(2), bprovincia);

                Lista.add(bdistrito);
            }
            res.close();
            stmt.close();
            conn.close();
        } catch (SQLException ex) {
            System.out.println("SqlException : " + ex.toString());
        } catch (Exception ex) {
            System.out.println("Exception : " + ex.toString());
        } finally {
            if (res != null) {
                try {
                    res.close();
                } catch (SQLException e) {
                    ;
                }
                res = null;
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    ;
                }
                stmt = null;
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    ;
                }
                conn = null;
            }
        }
        return Lista;
    }
}